package com.party.core.service.system;

import com.party.core.model.system.MemberSysRole;
import com.party.core.service.IBaseService;

import java.util.List;
import java.util.Map;

/**
 * 用户角色关系服务接口 party Created by wei.li on 2016/8/27 0027.
 */
public interface IMemberSysRoleService extends IBaseService<MemberSysRole> {

    /**
     * 根据用户主键查找用户角色关系
     *
     * @param memberId 用户主键
     * @return 用户角色列表
     */
    List<MemberSysRole> findByMemberId(String memberId);

    /**
     * 根据角色主键查找用户角色关系
     *
     * @param roleId 角色主键
     * @return 用户角色列表
     */
    List<MemberSysRole> findByRoleId(String roleId);

    /**
     * 根据用户ID删除 用户角色关系
     *
     * @param memberId 用户主键
     * @return 删除结果（true/false）
     */
    boolean deleteByMemberId(String memberId);

    /**
     * 根据角色ID删除 用户角色关系
     *
     * @param roleId 角色主键
     * @return 删除结果（true/false）
     */
    boolean deleteByRoleId(String roleId);

    /**
     * 根据用户ID和角色ID删除用户角色关系
     *
     * @param roleId   角色编号
     * @param memberId 角色编号
     * @return 删除结果（true/false）
     */
    boolean deleteByRoleIdAndMemberId(String roleId, String memberId);

    /**
     * @Description: 获取用户的全部角色
     * @Param: type，params
     * @return: List<MemberSysRole>
     * @Author: Hua Qunhao
     * @Date: 2019-05-29-0029
     */
    List<MemberSysRole> queryMemberRoleAll(Integer type, Map<String, Object> params);

    /**
     * 根据用户id和角色id查询关系
     *
     * @param memberId 用户id
     * @param roleId   角色id
     * @return
     * @author yifeng
     * @date 11:31 2019/10/24
     **/
    MemberSysRole findByMemberAndRole(String memberId, String roleId);

    void getSet(String memberId, String roleId);
}
